Method and apparatus for time efficient retransmission using symbol accumulation

ABSTRACT

An efficient retransmission of data using symbol accumulation wherein the packet received in error is retransmitted at a lower energy-per-bit level concurrently in the same frame with the new packet. The destination device receives the data transmission and retransmission, demodulate the signal, and separates the received data into the new and retransmitted packet. The destination device then accumulates the energy of the retransmitted packet with the energy already accumulated for the packet received in error and decodes the accumulated packet. The accumulation of the additional energy provided by the subsequent retransmissions improves the probability of a correct decoding. The throughput rate can be improved since the packet received in error is retransmitted concurrently with the transmission of the new data packet. The capacity is maximized since the retransmission of the packet received in error is at a lower energy level than that of the new packet.

CLAIM OF PRIORITY UNDER 35 U.S.C. §120

The present Application for Patent claims priority and is a continuationapplication to patent application Ser. No. 10/618,465, entitled, “Methodand Apparatus For Time Efficient Retransmission Using SymbolAccumulation,” filed Jul. 11, 2003 which is a continuation applicationto patent application Ser. No. 09/588,434, entitled, “Method andApparatus For Time Efficient Retransmission Using Symbol Accumulation,”filed Jun. 6, 2000, which is a divisional application of U.S. Pat. No.6,101,168, issued Aug. 8, 2000, granted on patent application Ser. No.08/969,319, filed Nov. 13, 1997, assigned to the assignee hereof, andhereby expressly incorporated by reference herein.

BACKGROUND

1. Field

The present invention relates to data communication. More particularly,the present invention relates to a novel and improved method andapparatus for the efficient retransmission of data using symbolaccumulation.

2. Background

The use of code division multiple access (CDMA) modulation techniques isone of several techniques for facilitating communications in which alarge number of system users are present. Other multiple accesscommunication system techniques, such as time division multiple access(TDMA) and frequency division multiple access (FDMA) are known in theart. However, the spread spectrum modulation techniques of CDMA hassignificant advantages over other modulation techniques for multipleaccess communication systems. The use of CDMA techniques in a multipleaccess communication system is disclosed in U.S. Pat. No. 4,901,307,entitled “SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USINGSATELLITE OR TERRESTRIAL REPEATERS,” assigned to the assignee of thepresent invention and is incorporated by reference herein. The use ofCDMA techniques in a multiple access communication system is furtherdisclosed in U.S. Pat. No. 5,103,459, entitled “SYSTEM AND METHOD FORGENERATING SIGNAL WAVEFORMS IN A CDMA CELLULAR TELEPHONE SYSTEM,” alsoassigned to the assignee of the present invention and is incorporated byreference herein. Furthermore, the CDMA system can be designed toconform to the “TIA/EIA/IS-95A Mobile Station-Base Station CompatibilityStandard for Dual-Mode Wideband Spread Spectrum Cellular System”,hereinafter referred to as the IS-95A standard.

CDMA, by its inherent nature of being a wideband signal, offers a formof frequency diversity by spreading the signal energy over a widebandwidth. Therefore, frequency selective fading affects only a smallpart of the CDMA signal bandwidth. Space or path diversity is obtainedby providing multiple signal paths through simultaneous links to amobile user or remote station through two or more base stations.Furthermore, path diversity may be obtained by exploiting the multipathenvironment through spread spectrum processing by allowing signalsarriving with different propagation delays to be received and processedseparately. Examples of improved demodulation using path diversity areillustrated in U.S. Pat. No. 5,101,501 entitled “METHOD AND SYSTEM FORPROVIDING A SOFT HANDOFF IN COMMUNICATIONS IN A CDMA CELLULAR TELEPHONESYSTEM,” and U.S. Pat. No. 5,109,390 entitled “DIVERSITY RECEIVER IN ACDMA CELLULAR TELEPHONE SYSTEM,” both assigned to the assignee of thepresent invention and incorporated by reference herein.

The reverse link refers to a transmission from a remote station to abase station. On the reverse link, each transmitting remote station actsas an interference to other remote stations in the network. Therefore,the reverse link capacity is limited by the total interference which aremote station experiences from other remote stations. The CDMA systemincreases the reverse link capacity by transmitting fewer bits, therebyusing less power and reducing interference, when the user is notspeaking.

The forward link refers to a transmission from a base station to aremote station. On the forward link, the transmission power of the basestation is controlled for several reasons. A high transmission powerfrom the base station can cause excessive interference with other basestations. Alternatively, if the transmission power of the base stationis too low, the remote station can receive erroneous data transmissions.Terrestrial channel fading and other known factors can affect thequality of the forward link signal as received by the remote station. Asa result, the base station attempts to adjust its transmission power ofsignal to each remote station to maintain the desired level ofperformance at the remote station.

The forward link and reverse link are capable of data transmission atvariable data rates. A method for transmitting data in data packets offixed size, wherein the data source provides data at a variable datarate, is described in detail in U.S. Pat. No. 5,504,773, entitled“METHOD AND APPARATUS FOR THE FORMATTING OF DATA FOR TRANSMISSION”,assigned to the assignee of the present invention and incorporated byreference herein. Data is partitioned into data packets (or packets) andeach data packet is then encoded into an encoded packet. Typically, theencoded packets are of a predetermined duration. For example, inaccordance with the IS-95A standard for the forward link, each encodedpacket is 20 msec wide and, at the 19.2 Ksps symbol rate, each encodedpacket contains 384 symbols. A rate 1/2 or a rate 3/4 convolutionalencoder is used to encode the data, depending on the application. Usinga rate 1/2 encoder, the data rate is approximately 9.6 Kbps. At the 9.6Kbps data rate, there are 172 data bits, 12 cyclic redundancy check(CRC) bits and 8 code tail bits per data packet.

At lower data rates, such as 4.8 Kbps, 2.4 Kbps, or 1.2 Kbps, the codesymbols within the encoded packet is repeated N_(s) number of times tomaintain a constant 19.2 Ksps symbol rate. Symbol repetition isperformed to provide time diversity which improves the decodingperformance in an impaired channel. To minimize the transmission powerand increase system capacity, the transmission power level of eachsymbol is scaled in accordance with the repetition rate N_(s).

In accordance with the IS-95A standard, each data packet is blockencoded with a CRC polynomial and then convolutionally encoded. Theencoded packet is transmitted from the source device to the destinationdevice. At the destination device, the received packet is demodulatedand convolutionally decoded with a Viterbi decoder. The decoded data isthen checked by a CRC checker to determine if the received packet hasbeen decoded correctly or in error. The CRC check is only able todetermine whether an error within the decoded packet is present. The CRCcheck is not able to correct the error. Therefore, another mechanism isrequired to allow correction of the data packets received in error.

SUMMARY

The present invention is a novel and improved method and apparatus forthe efficient retransmission of data using symbol accumulation. In thepresent invention, data transmission occurs from a source device to adestination device in the nominal manner. The destination devicereceives the data transmission, demodulates the signal, and decodes thedata. In the exemplary embodiment, the data is partitioned into datapackets which are transmitted within one frame time period. As part ofthe decoding process, the destination device performs the CRC check ofthe data packet to determine whether the packet was received in error.In the exemplary embodiment, if the packet was received in error, thedestination device transmits a NACK message to the source device.

In the exemplary embodiment, the source device responds to the NACKmessage by retransmitting the packet received in error concurrently withthe transmission of the new data packet. The destination device receivesthe data transmission and retransmission, demodulates the signal, andseparates the received data into the new packet and the retransmittedpacket. The destination device then accumulates the energy of thereceived retransmitted packet with the energy already accumulated by thedestination device for the packet received in error. The destinationdevice then attempts to decode the accumulated data packet. Theaccumulation of the additional energy provided by the subsequentretransmissions improves the probability of a correct decoding.Alternately, the destination device can decode the retransmitted packetby itself without combining the two packets. In both cases, thethroughput rate can be improved since the packet received in error isretransmitted concurrently with the transmission of the new data packet.

It is an object of the present invention to maintain the throughput rateof a communication system in the presence of channel impairments. In theexemplary embodiment, a data packet which is received in error isretransmitted by the source device concurrently with the new data packetwithin the same time period. Alternately, the packet received in errorcan be retransmitted on an additional traffic channel which isindependent of the traffic channel used to transmit the new packet.Since the retransmitted packet does not delay or impede the transmissionof the new packet, the throughput rate is maintained during theretransmission of the packet received in error.

It is another object of the present invention to maximize the capacityof the communication channel by retransmitting the packet received inerror with the minimum amount of energy such that the accumulation ofthe energy of the transmission and retransmission results in the correctdecoding of the packet. The packet received in error can beretransmitted with less energy-per-bit than the new packet which istransmitted for the first time. At the destination device, the energy ofeach symbol in the packet received in error is accumulated with theenergy of each symbol in the retransmitted packet. The accumulatedsymbols are then decoded.

It is yet another object of the present invention to improve theperformance of the decoding of the packets received in error byperforming the maximal ratio combining of the transmitted andretransmitted packets. For a communication system which supportscoherent demodulation with the use of a pilot signal, the destinationdevice performs a dot product of the received symbols with the pilotsignal. The dot product weighs each symbol in accordance with the signalstrength of the received signal and results in the maximal ratiocombining. Within a transmission or a retransmission, the scalar valuesfrom each dot product circuit which has been assigned to a signal pathare coherently combined to obtain combined scalar values. The combinedscalar values from multiple transmission and retransmissions are alsocoherently combined. The dot product and coherent combination improvethe performance of the subsequent decoding step. For a communicationsystem which does not transmit a pilot signal, the symbols from multipletransmission and retransmissions are scaled according to the receivedsignal-to-noise ratios of the received transmission or retransmissionsbefore accumulation.

BRIEF DESCRIPTION OF THE DRAWINGS

The features, objects, and advantages of the present invention willbecome more apparent from the detailed description set forth below whentaken in conjunction with the drawings in which like referencecharacters identify correspondingly throughout and wherein:

FIG. 1 is an exemplary diagram of the communication system of thepresent invention showing a plurality of base stations in communicationwith a remote station;

FIG. 2 is a block diagram of an exemplary base station and an exemplaryremote station;

FIG. 3 is a block diagram of an exemplary forward traffic channeltransmission system;

FIG. 4 is an exemplary block diagram of an alternative modulator;

FIG. 5 is a block diagram of an exemplary convolutional encoder;

FIG. 6 is a block diagram of an exemplary demodulator within the remotestation;

FIG. 7 is a block diagram of an exemplary pilot correlator;

FIG. 8 is a block diagram of an exemplary decoder within the remotestation; and

FIG. 9 is a block diagram of an exemplary architecture which supportsdata transmission over multiple code channels.

DETAILED DESCRIPTION

For simplicity, the following discussion details the transmission andretransmission of data packets from a source device to a destinationdevice without regard to whether the source device is a base station 4or a remote station 6. The present invention is equally applicable fordata transmission by base station 4 on the forward link and datatransmission by remote station 6 on the reverse link.

I. Circuit Description

Referring to the figures, FIG. 1 represents an exemplary communicationsystem of the present invention which is composed of multiple basestations 4 in communication with multiple remote stations 6 (only oneremote station 6 is shown for simplicity). System controller 2 connectsto all base stations 4 in the communication system and the publicswitched telephone network (PSTN) 8. System controller 2 coordinates thecommunication between users connected to PSTN 8 and users on remotestations 6. Data transmission from base station 4 to remote station 6occurs on the forward link through signal paths 10 and transmission fromremote station 6 to base station 4 occurs on the reverse link throughsignal paths 12. The signal path can be a straight path, such as signalpath 10 a, or a reflected path, such as signal path 14. Reflected path14 is created when the signal transmitted from base station 4 a isreflected off reflection source 16 and arrives at remote station 6through a different path than the straight path. Although illustrated asa block in FIG. 1, reflection source 16 is an artifact in theenvironment in which remote station 6 is operating, e.g. a building orother structures.

An exemplary block diagram of base station 4 and remote station 6 of thepresent invention is shown in FIG. 2. Data transmission on the forwardlink originates from data source 120 which provides the data, in datapackets, to encoder 122. An exemplary block diagram of encoder 122 isshown in FIG. 3. Within encoder 122, CRC encoder 312 block encodes thedata with a CRC polynomial which, in the exemplary embodiment, conformsto the IS-95A standard. CRC encoder 312 appends the CRC bits and insertsa set of code tail bits to the data packet. The formatted data packet isprovided to convolutional encoder 314 which convolutionally encodes thedata and provides the encoded data packet to symbol repeater 316. Symbolrepeater 316 repeats the encoded symbols N_(s) times to provide aconstant symbol rate at the output of symbol repeater 316 regardless ofthe data rate of the data packet. The repeated data is provided to blockinterleaver 318 which reorders the symbols and provides the interleaveddata to modulator (MOD) 124. A block diagram of an exemplary modulator124 a is shown if FIG. 3. Within modulator 124 a, the interleaved datais spread by multiplier 330 with the long PN code which identifies theremote station 6 to which the data is transmitted. The long PN spreaddata is provided to multiplier 332 which covers the data with the Walshcode corresponding to the traffic channel assigned to remote station 6.The Walsh covered data is further spread with the short PNI and PNQcodes by multipliers 334 a and 334 b. The short PN spread data isprovided to transmitter (TMTR) 126 (see FIG. 2) which filters,modulates, and amplifies the signal. The modulated signal is routedthrough duplexer 128 and transmitted from antenna 130 on the forwardlink through signal path 10.

A block diagram of an alternative modulator 124 b is shown in FIG. 4. Inthis embodiment, data source 120 provides data packets to two encoders122 which encode the data as described above. The interleaved data andthe pilot and control data are provided modulator 124 b. Withinmodulator 124 b, the interleaved data from the first encoder 122 isprovided to Walsh modulator 420 a and the interleaved data from thesecond encoder 122 is provided to Walsh modulator 420 b. Within eachWalsh modulator 420, the data is provided to multiplier 422 which coversthe data with a Walsh code assigned to that Walsh modulator 420. Thecovered data is provided to gain element 424 which scales the data witha scaling factor to obtain the desired amplitude. The scaled data fromWalsh modulators 420 a and 420 b are provided to summer 426 which sumsthe two signals and provides the resultant signal to complex multiplier430. The pilot and control data are provided to multiplexer (MUX) 412which time multiplexes the two data and provides the output to gainelement 414. Gain element 414 scales the data to obtain the desiredamplitude and provides the scaled data to complex multiplier 430.

Within complex multiplier 430, the data from gain element 414 isprovided to multipliers 432 a and 432 d and the data from summer 426 isprovided to multipliers 432 b and 432 c. Multipliers 432 a and 432 bspread the data with the spreading sequence from multiplier 440 a andmultipliers 432 c and 432 d spread the data with the spreading sequencefrom multiplier 440 b. The output of multipliers 432 a and 432 c areprovided to summer 434 a which subtracts the output of multiplier 432 cfrom the output of multiplier 432 a to provide the I channel data. Theoutput of multipliers 432 b and 432 d are provided to summer 434 b whichsums the two signals to provide the Q channel data. The spreadingsequences from multipliers 440 a and 440 b are obtained by multiplyingthe PNI and PNQ codes with the long PN code, respectively.

Although modulator 124 b as shown in FIG. 4 support transmission of twotraffic channels which are labeled as the fundamental channel and thesupplemental channel, modulator 124 b can be modified to facilitatetransmission of additional traffic channels. In the description above,one encoder 122 is utilized for each traffic channel. Alternatively, oneencoder 122 can be utilized for all traffic channels, with the output ofencoder 122 demultiplexed into multiple data streams, one data streamfor each traffic channel. Various modifications of the encoder andmodulator as described above can be contemplated and are within thescope of the present invention.

At remote station 6 (see FIG. 2), the forward link signal is received byantenna 202, routed through duplexer 204, and provided to receiver(RCVR) 206. Receiver 206 filters, amplifies, demodulates, and quantizesthe signal to obtain the digitized I and Q baseband signals. Thebaseband signals are provided to demodulator (DEMOD) 208. Demodulator208 despreads the baseband signals with the short PNI and PNQ codes,decovers the despread data with the Walsh code identical to the Walshcode used at base station 4, despreads the Walsh decovered data with thelong PN code, and provides the demodulated data to decoder 210.

Within decoder 210 which is shown in FIG. 8, block de-interleaver 812reorders the symbols within the demodulated data and provides thede-interleaved data to Viterbi decoder 814. Viterbi decoder 814convolutionally decodes the de-interleaved data and provides the decodeddata to CRC check element 816. CRC check element 816 performs the CRCcheck and conditionally provides the checked data to data sink 212.

Data transmission from remote station 6 to base station 4 on the reverselink can occur in one of several embodiments. In the first embodiment,the reverse link transmission can occur over multiple orthogonal codechannels similar to the structure used for the forward link. Theexemplary embodiment of a remote transmission system which supportsmultiple code channels on the reverse link is described in detail inU.S. Pat. No. 5,930,230, entitled “HIGH DATA RATE CDMA WIRELESSCOMMUNICATION SYSTEM”, assigned to the assignee of the present inventionand incorporated by reference herein. A simplified block diagram of thestructure is shown in FIG. 9. Data source 230 provides the data, in datapackets, through DEMUX 912 to channel encoders 910. Within each channelencoder 910, CRC encoder 914 block encodes the data packet then appendsthe CRC bits and a set of code tail bits to the data. The formatted datapacket is provided to convolutional encoder 916 which convolutionallyencodes the data and provides the encoded data packet to symbol repeater918. Symbol repeater 918 repeats the symbols with the encoded datapacket Ns times to provide a constant symbol rate at the output ofsymbol repeater 918 regardless of the data rate. The repeated data isprovided to block interleaver 920 which reorders the symbols within therepeated data and provides the interleaved data to modulator (MOD) 234.

Within modulator 234, the interleaved data from each channel encoder 910is provided to a Walsh modulator 930. Within Walsh modulator 930, theinterleaved data is covered by multiplier 932 with the Walsh code whichidentifies the code channel of the set of code channels transmitted bythe remote station on which the data is transmitted. The Walsh covereddata is provided to gain adjust 934 which amplifies the data with thedesired gain setting for the code channel. The outputs from Walshmodulators 930 are provided to complex PN spreader 940 which spreads theWalsh covered data with the long PN code and the short PN codes. Themodulated data is provided to transmitter 236 (see FIG. 2) whichfilters, modulates, and amplifies the signal. The modulated signal isrouted through duplexer 204 and transmitted from antenna 202 on thereverse link through signal path 12. A more detailed description of thereverse link architecture can be obtained from the aforementioned U.S.Pat. No. 5,930,230.

In the second embodiment, the reverse link is defined in accordance withthe IS-95A standard. In essence, the reverse link transmission by remotestation 6 is defined in accordance with the temporal offset of a commonlong PN sequence generator. At two differing offsets the resultingmodulation sequences are uncorrelated. The offset of each remote station6 is determined in accordance with a unique numerical identification ofthe remote station 6, which in the exemplary embodiment of an IS-95Aremote station 6 is the electronic serial number (ESN). Thus, eachremote station 6 transmits on one uncorrelated reverse link channeldetermined in accordance with its unique electronic serial number.

The reverse link structure of the second embodiment is fully describedin the aforementioned U.S. Pat. No. 4,901,307. In summary, the datapackets are provided by data source 230 to encoder 232 which encodes thedata packets with a CRC block code and a convolutional code. The encodeddata is repeated to maintain a constant symbol rate regardless of thedata rate. Six symbols of encoded data are mapped into a 64-bit Walshsymbol. The mapped signal is spread by the long PN code and the short PNcodes. The modulated data is provided to transmitter 236 which performsthe same function as that described in the first embodiment.

II. Demodulation of the Data Symbols

An exemplary block diagram illustrating the circuit for demodulating thereceived signal is shown in FIG. 6. The digitized I and Q basebandsignals from receiver 150 or 206 are provided to a bank of correlators610. Each correlator 610 can be assigned to a different signal path fromthe same source device or a different transmission from a differentsource device. Within each assigned correlator 610, the baseband signalsare despread with the short PNI and PNQ codes by multipliers 620. Theshort PNI and PNQ codes within each correlator 610 can have a uniqueoffset corresponding to the propagation delay experienced by the signalbeing demodulated by that correlator 610. The short PN despread data isdecovered by multipliers 622 with the Walsh code assigned to the trafficchannel being received by the correlator 610. The decovered data isprovided to filters 624 which accumulate the energy of the decovereddata over a Walsh symbol period.

The short PN despread data from multipliers 620 also contains the pilotsignal. In the exemplary embodiment, at the source device, the pilotsignal is covered with the all zero sequence corresponding to Walsh code0. In the alternative embodiment, the pilot signal is covered with anorthogonal pilot sequence as described in U.S. Pat. No. 6,285,655,entitled “METHOD AND APPARATUS FOR PROVIDING ORTHOGONAL SPOT BEAMS,SECTORS, AND PICOCELLS”, assigned to the assignee of the presentinvention and incorporated by reference herein. The short PN despreaddata is provided to pilot correlator 626 which perform pilot decovering,symbol accumulation, and lowpass filtering of the despread data toremove the signals from other orthogonal channels (e.g. the trafficchannels, paging channels, access channels, and power control channel)transmitted by the source device. If the pilot is covered with Walshcode 0, no Walsh decovering is necessary to obtain the pilot signal.

A block diagram of an exemplary pilot correlator 626 is shown in FIG. 7.The despread data from multiplier 620 is provided to multiplier 712which decovers the despread data with the pilot Walsh sequence. In theexemplary embodiment, the pilot Walsh sequence corresponds to Walsh code0. However, other orthogonal sequences and be utilized and are withinthe scope of the present invention. The decovered data is provided tosymbol accumulator 714. In the exemplary embodiment, symbol accumulator714 accumulates the decovered symbols over the length of the pilot Walshsequence which, for IS-95 Walsh sequence, is 64 chips in duration. Theaccumulated data is provided to lowpass filter 716 which filters thedata to remove noise. The output from lowpass filter 716 comprises thepilot signal.

The two complex signals (or vectors) corresponding to the filtered pilotsignal and the filtered data symbols are provided to dot product circuit630 which computes the dot product of the two vectors in a manner wellknown in the art. In the exemplary embodiment, dot product circuit 630is described in detail in U.S. Pat. No. 5,506,865, entitled “PILOTCARRIER DOT PRODUCT CIRCUIT”, assigned to the assignee of the presentinvention and incorporated by reference herein. Dot product circuit 630projects the vector corresponding to the filtered data symbol onto thevector corresponding to the filtered pilot signal, multiplies theamplitude of the vectors, and provides a signed scalar value to combiner640.

The pilot signal from each correlator 610 reflects the signal strengthof the signal path received by that correlator 610. Dot product circuit630 multiplies the amplitude of the vector corresponding to the filtereddata symbols, the amplitude of the vector corresponding to the filteredpilot signal, and the cosine of the angle between the vectors. Thus, theoutput from dot product circuit 630 corresponds to the energy of thereceived data symbol. The cosine of the angle between the vectors (e.g.,the angle of the pilot minus the angle of the traffic) weighs the outputin accordance with the noise in both pilot and traffic vectors.

Combiner 640 receives the scalar values from each correlator 610 whichhas been assigned to a signal path and combines the scalar values. Inthe exemplary embodiment, combiner 640 coherently combines the scalarvalues for each received symbol. An exemplary embodiment of combiner 640is described in detail in U.S. Pat. No. 5,109,390, entitled “DIVERSITYRECEIVER IN A CDMA CELLULAR TELEPHONE SYSTEM,” assigned to the assigneeof the present invention and incorporated by reference herein. Coherentcombination takes into account the sign of the scalar output from eachcorrelator 610 and results in the maximal ratio combining of thereceived symbols from different signal paths. The combined scalar valuefrom combiner 640 is represented as an m-bit soft decision value forsubsequent demodulation and decoding. The soft decision values areprovided to multiplier 642 which despreads the soft decision values withthe long PN code to produce the demodulated data. The demodulated datais decoded in the manner described above.

In a communication system in which the pilot signal is not transmittedby the source device, the dot product is not performed. Combiner 640simply combines the measured amplitude (or energy) of the receivedsignal from filters 624.

III. Acknowledgment Procedures

With the CRC check, the destination device is able to determine whetherthe data packet was received in a condition capable of correction by theViterbi decoder. In the present invention, one of a number of protocolscan be used to control the retransmission of packets received in error.The following embodiments list some of the methods that can be used.Other methods are extensions of the present invention and are within thescope of the present invention.

In the first embodiment, the destination device acknowledges everyreceived packet and sends an ACK message back to the source device ifthe packet is received correctly or a NACK message if the packet isreceived in error. For each transmitted packet, the source devicemonitors the ACK and NACK messages and retransmits the packets receivedin error. In this embodiment, the source device can retransmit a packetif an ACK or NACK message for that packet is not received within apredetermined time period. Furthermore, the source device can terminatethe retransmission of a packet if an ACK or NACK message is not receivedafter a predetermined number of retransmissions.

In the second embodiment, the destination device acknowledges everyreceived packet with an ACK or NACK message as in the first embodiment.The messages are sent by the destination device in an ordered manner tothe source device. Therefore, if the source device recognizes that amessage has not been received for a packet, the source deviceretransmits that packet. For example, if the source device receives amessage for packet i+1 but has not received a message for packet i, thenthe source device realizes that either packet i or the message forpacket i was not received properly. Therefore, the source deviceretransmits packet i. The second embodiment is an extension of the firstembodiment which can be used to speed up the retransmission process.

In the third embodiment, the destination device acknowledges onlypackets which are received in error with the NACK messages. The sourcedevice only retransmits a packet if a NACK message is received. Thedestination device can retransmit the NACK message (e.g., if aretransmission has not been received correctly after a predeterminedtime period).

IV. Data Retransmission

In the exemplary embodiment, if a packet was received in error, thedestination device transmits a NACK message back to the source device.The packet received in error can be retransmitted concurrently with thenew packet in the current frame or at a subsequent frame. Preferably,the packet received in error is retransmitted in the current frame tominimize processing delays. In the exemplary embodiment, theretransmitted packet comprises the identical code symbols which weretransmitted previously. In the alternative embodiment, the retransmittedpacket comprises new code symbols.

A block diagram of an exemplary convolutional encoder 314 of the presentinvention is shown in FIG. 5. In the exemplary embodiment, convolutionalencoder 314 is a constraint length K=9 encoder, although otherconstraint lengths can also be utilized. The input bits are provided to(K−1) delay elements 512. The outputs from selected delay elements 512are provided to a set of summers 514 which perform modulo two additionof the inputs to provide the generator output. For each summer 514, thedelay elements 512 are selected based on a polynomial which is carefullychosen for high performance.

In the exemplary embodiment wherein the retransmitted packet comprisesthe identical code symbols which were transmitted previously,convolutional encoder 314 is designed for the necessary code rate. Forexample, for a rate 1/2 convolutional encoder 314, only two generators(e.g., g0 and g1 from summers 514 a and 514 b, respectively) arenecessary and the remaining generators can be omitted. At the receiver,the code symbols for the retransmitted packets can be combined with thecorresponding code symbols from prior transmissions or can replace thoseprior transmitted symbols. The increased energy from symbol accumulationresults in improved decoding performance at the receiver.

In the alternative embodiment wherein the retransmitted packet comprisesnew code symbols which may not have been transmitted previously,convolutional encoder 314 is designed to produce code symbols at variouscode rates. Referring to FIG. 5, for an exemplary rate 1/2 convolutionalencoder 314, each input bit results in two output code symbols (e.g.,from generators g0 and g1). The original transmission can comprise thecode symbols for the original code rate (e.g., code symbols fromgenerator g0 and g1 for rate 1/2). If this packet is received in error,the retransmitted packet can comprise the code symbols from othergenerators which have not been transmitted previously (e.g., generatorsg2 and/or g3). At the receiver, the code symbols for the retransmittedpackets are interleaved (not combined) with the corresponding codesymbols from prior transmissions. The Viterbi decoder then decodes theaccumulated packet (comprising the code symbols from the transmitted andretransmitted packets) using a code rate corresponding to theaccumulated packet. As an example, assume the original transmissionutilizes rate 1/2 and the Viterbi decoder originally decodes using rate1/2. Assume further that the packet was received in error. Theretransmitted packet can comprise the code symbols from generator g2. Inthis case, the Viterbi decoder would decode the received codes symbolsfrom generators g0, g1, and g2 using rate 1/3. Similarly, if theaccumulated packet is decoded in error, an additional retransmittedpacket comprising codes symbols from generator g3 can be transmitted andthe Viterbi decoder would decode the accumulated packet comprising codessymbols from generators g0, g1, g2 and g3 using rate 1/4. The lower coderates provide enhanced error correcting capabilities over the originalrate 1/2.

Other code rates can also be generated by using punctured codes and arewithin the scope of the present invention. Punctured codes arethoroughly treated by J. Cain, G. Clark, and J. Geist in “PuncturedConvolutional Codes of Rate (n−1)/n and Simplified Maximum LikelihoodDecoding,” IEEE Transaction on Information Theory, IT-25, pgs. 97-100,January 1979. As an example, the original transmission can comprise thecode symbols from generators g0 and g1 for rate 1/2 and theretransmission can comprise code symbols from generators g2 and g3 whichhave been punctured to rate 3/4. The accumulated packet from bothtransmissions would comprise code symbols from generators g0, g1, g2 andg3 having a punctured rate 3/10. Puncturing reduces the number of codesymbols to be retransmitted but also reduces the error correctingcapability of the convolutional code.

In communication systems wherein the symbol rate can not be increased toaccommodate the additional retransmitted symbols, the source device canchange the code rate of the convolutional encoder to decrease the numberof code symbols needed for the new packet. The saving in code symbolscan then be used for the retransmitted packet. For example, a datapacket comprising 192 bits can be encoded nominally using a rate 1/2code to generate 384 code symbols. To retransmit a packet concurrentlywith the transmission of a new packet, the new packet can be encodedwith a rate 3/4 code, resulting in the generation of 256 code symbols.The remaining 128 code symbols can comprise the retransmitted packet.

Using this scheme whereby the code rate of the new packet can beadjusted, it may be possible to operate symbol repetition in the nominalmanner. Since the code rate is decreased, a higher operating E_(s)/I_(o)is probably required to maintain the same level of performance. Thetransmission power level can be adjusted such that the E_(s) of eachsymbol is increased to maintain the requisite level of performance. Thisscheme is especially useful to avoid additional delay when the data rateof the new packet is at full rate.

The source device can retransmit the packet received in error in one ofmany embodiments. In the first embodiment, the retransmission isachieved by substituting the repeated symbols for the new packet withthe code symbols for the retransmitted packet. For example, if there are384 symbols in a frame and 288 of the symbols are repeated, then these288 symbols can be used for the code symbols for the retransmittedpacket. At least 96 symbols are reserved for the code symbols for thenew packet. If the retransmitted packet improves the decoding by thedestination device and results in an error free data packet, then theretransmission does not degrade the throughput rate even in the presenceof errors in the channel.

The probability of a packet received in error is dependent on thequality, as measured by the energy-per-bit-to-noise-plus-interferenceratio (E_(s)/I_(o)), of the received signal and the variation of thesignal quality over time. The energy-per-bit E_(s) is determined by theamount of energy received over a symbol period. If the repeated symbolsare used for the code symbols for the retransmitted packet, the symbolperiods for the new symbols and the retransmitted symbols are shortenedcorrespondingly. If the transmission power is maintained at the samelevel by the source device, the E_(s) will be lower for each new andretransmitted symbol and can result in a higher error rate. To maintainthe same E_(s) over a shorter symbol period, the transmission powerlevel of the symbols is increased. In fact, the transmission power levelcan be increased such that the E_(s) is higher than nominal tocompensate for the loss in time diversity that results from notrepeating the symbols.

The transmission power level can be increased by the same amount for thenew and retransmitted symbols, or by different amounts. This choice isdetermined by system considerations. If the transmission power level isincreased sufficiently for the retransmitted symbols, the destinationdevice can decode the retransmitted packet without regard to theoriginal packet which was received in error. However, highertransmission power consumes system resources and can decrease the systemcapacity. In the preferred embodiment, the transmission power level isadjusted such that the Es for the retransmitted symbols is lower thanthat of the new symbols. Furthermore, the transmission power level forthe retransmitted symbols can be set at or slightly above the minimallevel such that the energy of the retransmitted symbols, when combinedwith the energy already accumulated by the destination device for thosesymbols, results in the requisite level of performance.

The minimum transmission power level for the retransmitted symbols canbe computed as follows. First, the communication system determines theE_(s)/I_(o) required for the requisite level of performance. Therequired E_(s)/I_(o) is approximately equal to an E_(s)/I_(o) set pointmaintained by the power control loop. The power control loop adjusts thetransmission power to maintain the quality of the received signal at theE_(s)/I_(o) set point. Second, the destination device can measure thesignal-to-noise-plus-interference ratio $\frac{S}{\sqrt{S^{2} + N^{2}}}$of the received signal. From $\frac{S}{\sqrt{S^{2} + N^{2}}},$the E_(s)/I_(o) of the received packet can be calculated. An exemplaryembodiment for measuring the E_(s)/I_(o) in a spread spectrumcommunication system is described in detail in U.S. Pat. No. 5,903,554,entitled “METHOD AND APPARATUS FOR MEASURING LINK QUALITY IN A SPREADSPECTRUM COMMUNICATION SYSTEM”, assigned to the assignee of the presentinvention and incorporated by reference herein. The destination devicecan then compute the additional energy-per-bit Es from the subsequentretransmission (assuming the same I_(o)) required to increase themeasured E_(s)/I_(o) of the received signal to the required E_(s)/I_(o).The information (e.g. the additional E_(s)) can be transmitted to thesource device which adjusts the transmission gain of the retransmittedsymbols to obtain the additional E_(s) required by the destinationdevice. For each retransmission, the destination device can update thereceived E_(s)/I_(o) for the accumulated symbols. The destination devicecan then recompute the required additional E_(s) if the decoding stillresults in a packet error.

In the present invention, symbol repetition is performed only if thedata rate of the packet is less than full rate. If the data rate for thenew packet is at full rate, there are no repeated symbols which can beused for retransmission of the packet received in error. Therefore, thepresent invention can be implemented in conjunction with anotherretransmission protocol at a higher layer. One such scheme is the radiolink protocol (RLP) which is defined by the IS-657 standard. The RLPlayer can delay the transmission of the new data packet to allowretransmission of the packet received in error.

In the second embodiment, the packet received in error is retransmittedon an additional code channel which is available for transmission to thedestination device. One major advantage of this embodiment is that theretransmission of the packet received in error is independent of thetransmission of the new packet. Therefore, the number of repetitions,the power level, and the code rate do not need to be changed toaccommodate the retransmission. Furthermore, the second embodimentallows the source device to retransmit even if the new packet is a fullrate frame (i.e. when no code symbols are repeated in the frame). Anadditional advantage of the second embodiment is the ease of placing theadditional code channel on a quadrature channel from the regular trafficchannel to reduce the peak to average amplitude variation which candegrade the system performance. The pilot channel, the regular trafficchannel, the power control channel, and the additional code channel canbe organized to balance the I and the Q channels in the QPSK or OQPSKmodulation.

The various modes of data retransmission described above can be used forretransmission of an entire packet or a partial packet. For somecommunication systems, it may be possible to monitor the quality oftransmission link over the duration of a packet. In the exemplaryembodiment, the link quality can be monitored by measuring E_(s)/I_(o)in the manner described in the aforementioned U.S. Pat. No. 5,903,554.In this case, it may be more economical to retransmit only the portionof the packet corresponding to the time period when the transmissionlink quality is poor (e.g., below a predetermined threshold). Anindication of the time duration wherein the link quality is poor can betransmitted to the source which then retransmits only that portion ofthe packet corresponding to the noted time duration. The retransmissionof the packets received in error, as described above, is applicable fordata retransmission on the forward link and reverse link.

From the above discussion, symbol accumulation as used in thisspecification refers to the accumulation of the energy of a transmissionof a data packet with the energy of one or more retransmissions of anentire or partial packet. Symbol accumulation also refers to theaccumulation of identical code symbols (through addition and/orreplacement of code symbols and using the same code rate) and theaccumulation of different code symbols (through interleaving and usinglower code rates).

V. Processing of the Retransmitted Packets

If error correcting coding is used for data transmission, fullretransmission of the packet received in error is not required tocorrectly decode the packet. In the present invention, the destinationdevice decodes the received packet and performs the CRC check todetermine whether the packet was received in error. If the packet wasreceived in error, the symbols which comprised the packet received inerror are stored for subsequent decoding. In the exemplary embodiment,the storage can be implemented using a storage element or one of anynumber of memory devices that are known in the art, such as RAM memorydevices, latches, or other types of memory devices.

The source device retransmits the packet received in error in one of themethods described above. The destination device receives theretransmitted packet, accumulates energy of the retransmitted packetwith the energy already accumulated for the packet received in error,and decodes the accumulated packet. The additional energy of theretransmitted packet increases the likelihood that the accumulatedpacket can be decoded correctly. The probability of error of theaccumulated packet is typically substantially less than the originalreceived packet since a large amount of energy may have been accumulatedfrom the original transmission and the retransmissions.

In the exemplary embodiment, the energy accumulation is performed on asymbol by symbol basis. For each symbol, the combined scalar value (fromcombiner 640) of the retransmitted symbol is coherently combined withthe scalar value which has been accumulated for this data symbol. Theaccumulation can be accomplished with an arithmetic logic unit (ALU), amicroprocessor, a digital signal processor (DSP), or other devicesprogrammed or designed to perform the functions disclosed herein. Again,coherently combining takes into account the sign of the scalar value.Coherent combination performs the maximal ratio combining of the signalsreceived from the transmission and retransmissions. In this regard, theretransmissions can be viewed as the outputs from additional fingers (orcorrelators 610) of a rake receiver. The retransmissions also providetime diversity for the data transmission.

In the exemplary embodiment, the accumulated scalar value may bemanipulated before subsequent demodulation and decoding. The accumulatedscalar value of each symbol is a soft decision value which is typicallyrepresented as an m-bit signed integer. The soft decision values areeventually provided to Viterbi decoder 814 for decoding. The performanceof Viterbi decoder 814 is influenced by the number of bits and the rangeof the soft decision values. Specifically, for each code branch, thebranch metric calculations compares the soft decision values for thatcode branch to an expected value to obtain a branch metric. The branchmetric are then used to defined the maximal likelihood path whichresults in the decoded bits.

As energy is accumulated for each symbol from the retransmissions, thesoft decision values have tendency to increase in value. Therefore, itmay be necessary to rescale the soft decision values with a gain factorA_(v) before Viterbi decoding. Because the soft decision values arederived from an accumulation of energy from multiple transmission andretransmissions, it is preferable to maintain A_(v)=1.0. As the softdecision value increases, the confidence in the correctness of thatsymbol increases. Rescaling the soft decision value to a smaller valueto fit within a range can introduce quantization error and other errors.However, other system factors (e.g. E_(b)/I_(o) of the received signal)may dictate that the soft decision values be rescaled for an improvedperformance. In the exemplary embodiment, the scaling can be performedwith an arithmetic logic unit (ALU), a microprocessor, a digital signalprocessor (DSP), or other devices programmed or designed to perform thefunction disclosed herein.

Since the branch metric calculation circuit within Viterbi decoder 814is typically designed with a predetermined number of bits, it isprobably necessary to clip the soft decision values. To maintainaccuracy, the accumulated scalar values can be stored as unclippedvalues and the clipping can be done prior to the Viterbi decoding step.

In a system architecture wherein the pilot signal is not transmittedconcurrently with the data transmission, the combination of the datasymbols from the transmission and retransmissions is accomplished byanother embodiment. An example of such architecture is the reverse linkimplementation which conforms to the IS-95A standard. It is preferableto accumulated the scalar values according to the signal-to-noise ratio(S/N) of the received signals. At the destination device, the energy Sof the desired signal (e.g. the retransmitted packet) can be computedafter the despreading with the long PN code and the short PN codes. Thetotal energy of the received signal can be computed and represented as{square root}{square root over (S²+N²)}. Since the received signal ispredominantly comprised of the interference (e.g. N>>S), N isapproximately equal to {square root}{square root over (S²+N²)}. Thus,the destination device accumulates the scalar values from thetransmission and retransmissions according to the equation:$\begin{matrix}{{y_{i} = {{\sum\frac{{\overset{\rightharpoonup}{s}}_{ij}}{N_{ij}}} \approx {\sum\frac{{\overset{\rightharpoonup}{s}}_{ij}}{\left( \sqrt{S^{2} + N^{2}} \right)_{j}}}}},} & (1)\end{matrix}$where y_(i) is the accumulated scalar value for the i^(th) symbol,{overscore (s)}_(ij) is the vector of the desired signal for the i^(th)symbols of the j^(th) transmission, |{overscore (s)}_(ij)| is the scalarvalue from filter 624 for the i^(th) symbols of the j^(th) transmission,and ({square root}{square root over (S²+N²)})_(j) is the total energy ofthe received signal for the j^(th) transmission. {overscore (s)}_(ij)can be approximated with the scalar value |{overscore (s)}_(ij) | fromfilter 624. Also, {square root}{square root over (S²+N²)} can bemeasured for each data transmission or retransmission. From equation (1)the scalar value of each symbol in the packet is scaled by the gainG=({square root}{square root over (S²+N²)})_(j) before accumulation.

In the present invention, the total energy {square root}{square rootover (S²+N²)} of the received signal can be computed on a frame-by-framebasis or on a symbol-by-symbol basis. Symbol-by-symbol basis allows thedestination device to adjust the gain of each symbol to take intoaccount fast changes in the channel condition.

In the present invention, the accumulation of the energy from additionalretransmissions allows the destination device to correctly decode thepackets received in error. The retransmission allows the communicationsystem to operate at a higher frame-error-rate (FER) than nominalbecause of the ability to correctly decode the packets with a minimalexpenditure of system resource, thereby improving the reliability of thedata transmission and possibly increasing the capacity of the system.Furthermore, the retransmission at a subsequent time provides timediversity and improves the reliability of the data transmission.However, operating at a higher FER necessitates the retransmissions ofmore packets and can increase the complexity of the communicationsystem.

The previous description of the preferred embodiments is provided toenable any person skilled in the art to make or use the presentinvention. The various modifications to these embodiments will bereadily apparent to those skilled in the art, and the generic principlesdefined herein may be applied to other embodiments without the use ofthe inventive faculty. Thus, the present invention is not intended to belimited to the embodiments shown herein but is to be accorded the widestscope consistent with the principles and novel features disclosedherein.

1. A method for communicating data, comprising: encoding data bits of apacket of data at an encoding rate to produce a plurality of codesymbols for each respective data bit of the packet of data; puncturingthe code symbols of the data packet in accordance with a firstpuncturing pattern to produce a first punctured packet of data;transmitting the first punctured packet of data; receiving a firstnegative acknowledgment indicating unsuccessful decoding of the packetof data after said transmitting the first punctured packet of data;puncturing the code symbols of the data packet in accordance with asecond puncturing pattern to produce a second punctured packet of data;transmitting the second punctured packet of data in response to saidreceiving the first negative acknowledgment.
 2. The method as recited inclaim 1, further comprising: selecting the first and second puncturingpatterns to produce the first and second punctured packets of data suchthat the second punctured packet of data includes code symbols differentfrom the code symbols included in the first punctured packet of data. 3.The method as recited in claim 1, further comprising: selecting thefirst and second puncturing patterns to produce the first and secondpunctured packets of data such that the first and second puncturedpackets of data have at least one code symbol in common with each other.4. The method as recited in claim 1, further comprising: selecting thefirst and second puncturing patterns to produce the first and secondpunctured packets of data such that the first and second puncturedpackets of data have no code symbols in common with each other.
 5. Themethod as recited in claim 1, further comprising: receiving a secondnegative acknowledgment indicating unsuccessful decoding of the packetof data after said transmitting the second punctured packet of data;puncturing the code symbols of the data packet in accordance with athird puncturing pattern to produce a third punctured packet of data;transmitting the third punctured packet of data in response to saidreceiving the second negative acknowledgment.
 6. The method as recitedin claim 5, further comprising: selecting the first, second, and thirdpuncturing patterns to produce the first, second, and third puncturedpackets of data such that the first, second, and third punctured packetsof data have different code symbols from each other.
 7. The method asrecited in claim 5, further comprising: selecting the first, second, andthird puncturing patterns to produce the first, second, and thirdpunctured packets of data such that the first, second, and thirdpunctured packets of data have at least one code symbol in common witheach other.
 8. The method as recited in claim 5, further comprising:selecting the first and third puncturing patterns to produce the firstand third punctured packets of data such that the first and thirdpunctured packets of data have at least one code symbol in common witheach other.
 9. The method as recited in claim 5, further comprising:selecting the first and third puncturing patterns to produce the firstand third punctured packets of data such that the first and thirdpunctured packets of data have different code symbols from each other.10. The method as recited in claim 5, further comprising: selecting thesecond and third puncturing patterns to produce the second and thirdpunctured packets of data such that the second and third puncturedpackets of data have at least one code symbol in common with each other.11. The method as recited in claim 5, further comprising: selecting thesecond and third puncturing patterns to produce the second and thirdpunctured packets of data such that the second and third puncturedpackets of data have different code symbols from each other.
 12. Anapparatus for communicating data, comprising: an encoder configured toencode data bits of a packet of data at an encoding rate to produce aplurality of code symbols for each respective data bit of the packet ofdata; a processor configured to puncture the code symbols of the datapacket in accordance with a first puncturing pattern to produce a firstpunctured packet of data; a transmitter configured to transmit the firstpunctured packet of data; a receiver configured to receive a firstnegative acknowledgment indicating unsuccessful decoding of the packetof data after said transmitter transmitting the first punctured packetof data; said processor further configured to puncture the code symbolsof the data packet in accordance with a second puncturing pattern toproduce a second punctured packet of data; said transmitter furtherconfigured to transmit the second punctured packet of data in responseto said receiver receiving the first negative acknowledgment.
 13. Theapparatus as recited in claim 12, further comprising: a controllerconfigured to select the first and second puncturing patterns to producethe first and second punctured packets of data such that the secondpunctured packet of data includes code symbols different from the codesymbols included in the first punctured packet of data.
 14. Theapparatus as recited in claim 12, further comprising: a controllerconfigured to select the first and second puncturing patterns to producethe first and second punctured packets of data such that the first andsecond punctured packets of data have at least one code symbol in commonwith each other.
 15. The apparatus as recited in claim 12, furthercomprising: a controller configured to select the first and secondpuncturing patterns to produce the first and second punctured packets ofdata such that the first and second punctured packets of data have nocode symbols in common with each other.
 16. The apparatus as recited inclaim 12, wherein said receiver is further configured to receive asecond negative acknowledgment indicating unsuccessful decoding of thepacket of data after said transmitter transmitting the second puncturedpacket of data, wherein said processor is further configured to puncturethe code symbols of the data packet in accordance with a thirdpuncturing pattern to produce a third punctured packet of data, andwherein said transmitter is further configured to transmit the thirdpunctured packet of data in response to said receiver receiving thesecond negative acknowledgment.
 17. The apparatus as recited in claim16, wherein said controller is further configured to select the first,second, and third puncturing patterns to produce the first, second, andthird punctured packets of data such that the first, second, and thirdpunctured packets of data have different code symbols from each other.18. The apparatus as recited in claim 16, wherein said controller isfurther configured to select the first, second, and third puncturingpatterns to produce the first, second, and third punctured packets ofdata such that the first, second, and third punctured packets of datahave at least one code symbol in common with each other.
 19. Theapparatus as recited in claim 16, wherein said controller is furtherconfigured to select the first and third puncturing patterns to producethe first and third punctured packets of data such that the first andthird punctured packets of data have at least one code symbol in commonwith each other.
 20. The apparatus as recited in claim 16 wherein saidcontroller is further configured to select the first and thirdpuncturing patterns to produce the first and third punctured packets ofdata such that the first and third punctured packets of data havedifferent code symbols from each other.
 21. The apparatus as recited inclaim 16, wherein said controller is further configured to select thesecond and third puncturing patterns to produce second and thirdpunctured packets of data such that the second and third puncturedpackets of data have at least one code symbol in common with each other.22. The apparatus as recited in claim 16, wherein said controller isfurther configured to select the second and third puncturing patterns toproduce the second and third punctured packets of data such that thesecond and third punctured packets of data have different code symbolsfrom each other.